package org.jeecg.modules.bigscreen.mapper;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.bigscreen.entity.*;

import java.util.List;
import java.util.Map;

public interface JmReportMapper extends BaseMapper<JmReportHotelDate> {
    //住宿统计--房间数据
    List<JmReportHotelDate> getRoomTotal(Page<JmReportHotelDate> page,
                                         @Param(Constants.WRAPPER)QueryWrapper<JmReportHotelDate> queryWrapper);
    //住宿统计按照层--床位数据
    List<JmReportHotelDate> getLayerBadTotal(@Param("chId") List<String> chId);

    //住宿统计按照楼--床位数据
    List<JmReportHotelDate> getBuildingBadTotal(@Param("lhId") List<String> lhId);

    //住宿统计按照校区--床位数据
    List<JmReportHotelDate> getCampusBadTotal(@Param("xqId") List<String> xqId);

    //毕业生统计--房间分布
    List<JmReportGraduateDate> getGraduateTotal(Page<JmReportGraduateDate> page,
                                                @Param(Constants.WRAPPER)QueryWrapper<JmReportGraduateDate> queryWrapper,
                                                @Param("startTime")String startTime, @Param("endTime")String endTime);
    //住宿统计--学院数据
    List<JmReportFacultyDate> getFacultyTotal(Page<JmReportFacultyDate> page,
                                              @Param(Constants.WRAPPER)QueryWrapper<JmReportFacultyDate> queryWrapper);

    //住宿统计--学院楼宇数据
    List<JmReportFacultyBuildingDate> getFacultyBuildingTotal(Page<JmReportFacultyBuildingDate> page,
                                              @Param(Constants.WRAPPER)QueryWrapper<JmReportFacultyBuildingDate> queryWrapper);
    //住宿统计--房间住满情况
    List<Map<String,String>>  queryStuLiveChart(@Param("campusName")String campusName, @Param("buildingName")String buildingName );
    //住宿统计--房间住满情况(层)
    List<Map<String,String>>  queryStuLiveLayerChart(@Param("campusName")String campusName, @Param("buildingName")String buildingName );

    //住宿统计--房间住满情况
    List<Map<String,String>>  queryRoomTypeChart(@Param("campusName")String campusName, @Param("buildingName")String buildingName );
    //住宿统计--房间住满情况(层)
    List<Map<String,String>>  queryRoomTypeLayerChart(@Param("campusName")String campusName, @Param("buildingName")String buildingName );


    //住宿统计--院系分布（楼）
    List<Map<String,String>>  queryCollegeChart(@Param("campusName")String campusName, @Param("buildingName")String buildingName );
    //住宿统计--院系分布(层)
    List<Map<String,String>>  queryCollegeLayerChart(@Param("campusName")String campusName, @Param("buildingName")String buildingName, @Param("unitName")String unitName, @Param("layerName") String layerName );

    //住宿统计--年级分布（层）
    List<Map<String,String>>  queryYearChart(@Param("campusName")String campusName, @Param("buildingName")String buildingName );
    //住宿统计--年级分布(楼)
    List<Map<String,String>>  queryYearLayerChart(@Param("campusName")String campusName, @Param("buildingName")String buildingName, @Param("unitName")String unitName, @Param("layerName") String layerName );


    //住宿统计--学历分布（层）
    List<Map<String,String>>  queryNationChart(@Param("campusName")String campusName, @Param("buildingName")String buildingName );
    //住宿统计--学历分布(楼)
    List<Map<String,String>>  queryNationLayerChart(@Param("campusName")String campusName, @Param("buildingName")String buildingName , @Param("unitName")String unitName, @Param("layerName") String layerName);

    //空房间分布
    List<JmReportRoomDate> getNullRoomData(Page<JmReportRoomDate> page,
                                           @Param(Constants.WRAPPER)QueryWrapper<JmReportRoomDate> queryWrapper);
    /** 住宿统计--院系房间分布 */
    List<Map<String,String>>  queryCollegeRooms();

}
